home *** CD-ROM | disk | FTP | other *** search
/ C++ für Kids / C++ for kids.iso / SETUP / US / CBUILDER / DATA.Z / COMMDLG.PAS < prev    next >
Pascal/Delphi Source File  |  1997-02-13  |  25KB  |  692 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Delphi Run-time Library                         }
  5. {       Windows 32bit API Interface Unit                }
  6. {                                                       }
  7. {       Copyright (c) 1995,96 Borland International     }
  8. {                                                       }
  9. {*******************************************************}
  10.  
  11. unit CommDlg;
  12.  
  13. interface
  14.  
  15. uses Windows, Messages;
  16.  
  17. type
  18.   POpenFilenameA = ^TOpenFilenameA;
  19.   POpenFilenameW = ^TOpenFilenameW;
  20.   POpenFilename = POpenFilenameA;
  21.   tagOFNA = packed record
  22.     lStructSize: DWORD;
  23.     hWndOwner: HWND;
  24.     hInstance: HINST;
  25.     lpstrFilter: PAnsiChar;
  26.     lpstrCustomFilter: PAnsiChar;
  27.     nMaxCustFilter: DWORD;
  28.     nFilterIndex: DWORD;
  29.     lpstrFile: PAnsiChar;
  30.     nMaxFile: DWORD;
  31.     lpstrFileTitle: PAnsiChar;
  32.     nMaxFileTitle: DWORD;
  33.     lpstrInitialDir: PAnsiChar;
  34.     lpstrTitle: PAnsiChar;
  35.     Flags: DWORD;
  36.     nFileOffset: Word;
  37.     nFileExtension: Word;
  38.     lpstrDefExt: PAnsiChar;
  39.     lCustData: LPARAM;
  40.     lpfnHook: function(Wnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  41.     lpTemplateName: PAnsiChar;
  42.   end;
  43.   {$nonamespace tagOFNA}
  44.   TOpenFilenameA = tagOFNA;
  45.   tagOFNW = packed record
  46.     lStructSize: DWORD;
  47.     hWndOwner: HWND;
  48.     hInstance: HINST;
  49.     lpstrFilter: PWideChar;
  50.     lpstrCustomFilter: PWideChar;
  51.     nMaxCustFilter: DWORD;
  52.     nFilterIndex: DWORD;
  53.     lpstrFile: PWideChar;
  54.     nMaxFile: DWORD;
  55.     lpstrFileTitle: PWideChar;
  56.     nMaxFileTitle: DWORD;
  57.     lpstrInitialDir: PWideChar;
  58.     lpstrTitle: PWideChar;
  59.     Flags: DWORD;
  60.     nFileOffset: Word;
  61.     nFileExtension: Word;
  62.     lpstrDefExt: PWideChar;
  63.     lCustData: LPARAM;
  64.     lpfnHook: function(Wnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  65.     lpTemplateName: PWideChar;
  66.   end;
  67.   {$nonamespace tagOFNW}
  68.   TOpenFilenameW = tagOFNW;
  69.   TOpenFilename = TOpenFilenameA;
  70.  
  71. function GetOpenFileNameA(var OpenFile: TOpenFilenameA): Bool; stdcall;
  72. function GetOpenFileNameW(var OpenFile: TOpenFilenameW): Bool; stdcall;
  73. function GetOpenFileName(var OpenFile: TOpenFilename): Bool; stdcall;
  74. function GetSaveFileNameA(var OpenFile: TOpenFilenameA): Bool; stdcall;
  75. function GetSaveFileNameW(var OpenFile: TOpenFilenameW): Bool; stdcall;
  76. function GetSaveFileName(var OpenFile: TOpenFilename): Bool; stdcall;
  77. function GetFileTitleA(FileName: PAnsiChar; Title: PAnsiChar; TitleSize: Word): Smallint; stdcall;
  78. function GetFileTitleW(FileName: PWideChar; Title: PWideChar; TitleSize: Word): Smallint; stdcall;
  79. function GetFileTitle(FileName: PChar; Title: PChar; TitleSize: Word): Smallint; stdcall;
  80.  
  81. const
  82.   OFN_READONLY = $00000001;
  83.   OFN_OVERWRITEPROMPT = $00000002;
  84.   OFN_HIDEREADONLY = $00000004;
  85.   OFN_NOCHANGEDIR = $00000008;
  86.   OFN_SHOWHELP = $00000010;
  87.   OFN_ENABLEHOOK = $00000020;
  88.   OFN_ENABLETEMPLATE = $00000040;
  89.   OFN_ENABLETEMPLATEHANDLE = $00000080;
  90.   OFN_NOVALIDATE = $00000100;
  91.   OFN_ALLOWMULTISELECT = $00000200;
  92.   OFN_EXTENSIONDIFFERENT = $00000400;
  93.   OFN_PATHMUSTEXIST = $00000800;
  94.   OFN_FILEMUSTEXIST = $00001000;
  95.   OFN_CREATEPROMPT = $00002000;
  96.   OFN_SHAREAWARE = $00004000;
  97.   OFN_NOREADONLYRETURN = $00008000;
  98.   OFN_NOTESTFILECREATE = $00010000;
  99.   OFN_NONETWORKBUTTON = $00020000;
  100.   OFN_NOLONGNAMES = $00040000;
  101.   OFN_EXPLORER = $00080000;
  102.   OFN_NODEREFERENCELINKS = $00100000;
  103.   OFN_LONGNAMES = $00200000;
  104.  
  105. { Return values for the registered message sent to the hook function
  106.   when a sharing violation occurs.  OFN_SHAREFALLTHROUGH allows the
  107.   filename to be accepted, OFN_SHARENOWARN rejects the name but puts
  108.   up no warning (returned when the app has already put up a warning
  109.   message), and OFN_SHAREWARN puts up the default warning message
  110.   for sharing violations.
  111.  
  112.   Note:  Undefined return values map to OFN_SHAREWARN, but are
  113.          reserved for future use. }
  114.  
  115.   OFN_SHAREFALLTHROUGH = 2;
  116.   OFN_SHARENOWARN = 1;
  117.   OFN_SHAREWARN = 0;
  118.  
  119. type
  120.   POFNotifyA = ^TOFNotifyA;
  121.   POFNotifyW = ^TOFNotifyW;
  122.   POFNotify = POFNotifyA;
  123.   _OFNOTIFYA = packed record
  124.     hdr: TNMHdr;
  125.     lpOFN: POpenFilenameA;
  126.     pszFile: PAnsiChar;
  127.   end;
  128.   {$nonamespace _OFNOTIFYA}
  129.   TOFNotifyA = _OFNOTIFYA;
  130.   _OFNOTIFYW = packed record
  131.     hdr: TNMHdr;
  132.     lpOFN: POpenFilenameW;
  133.     pszFile: PWideChar;
  134.   end;
  135.   {$nonamespace _OFNOTIFYW}
  136.   TOFNotifyW = _OFNOTIFYW;
  137.   TOFNotify = TOFNotifyA;
  138.  
  139. const
  140.   CDN_FIRST = -601;
  141.   CDN_LAST = -699;
  142.  
  143. { Notifications when Open or Save dialog status changes }
  144.  
  145.   CDN_INITDONE = CDN_FIRST - 0;
  146.   CDN_SELCHANGE = CDN_FIRST - 1;
  147.   CDN_FOLDERCHANGE = CDN_FIRST - 2;
  148.   CDN_SHAREVIOLATION = CDN_FIRST - 3;
  149.   CDN_HELP = CDN_FIRST - 4;
  150.   CDN_FILEOK = CDN_FIRST - 5;
  151.   CDN_TYPECHANGE = CDN_FIRST - 6;
  152.  
  153.   CDM_FIRST = WM_USER + 100;
  154.   CDM_LAST = WM_USER + 200;
  155.  
  156. { Messages to query information from the Open or Save dialogs }
  157.  
  158. { lParam = pointer to text buffer that gets filled in
  159.   wParam = max number of characters of the text buffer (including NULL)
  160.   return = < 0 if error; number of characters needed (including NULL) }
  161.  
  162.   CDM_GETSPEC = CDM_FIRST + 0;
  163.  
  164. { lParam = pointer to text buffer that gets filled in
  165.   wParam = max number of characters of the text buffer (including NULL)
  166.   return = < 0 if error; number of characters needed (including NULL) }
  167.  
  168.   CDM_GETFILEPATH = CDM_FIRST + 1;
  169.  
  170. { lParam = pointer to text buffer that gets filled in
  171.   wParam = max number of characters of the text buffer (including NULL)
  172.   return = < 0 if error; number of characters needed (including NULL) }
  173.  
  174.   CDM_GETFOLDERPATH = CDM_FIRST + 2;
  175.  
  176. { lParam = pointer to ITEMIDLIST buffer that gets filled in
  177.   wParam = size of the ITEMIDLIST buffer
  178.   return = < 0 if error; length of buffer needed }
  179.  
  180.   CDM_GETFOLDERIDLIST = CDM_FIRST + 3;
  181.  
  182. { lParam = pointer to a string
  183.   wParam = ID of control to change
  184.   return = not used }
  185.  
  186.   CDM_SETCONTROLTEXT = CDM_FIRST + 4;
  187.  
  188. { lParam = not used
  189.   wParam = ID of control to change
  190.   return = not used }
  191.  
  192.   CDM_HIDECONTROL = CDM_FIRST + 5;
  193.  
  194. { lParam = pointer to default extension (no dot)
  195.   wParam = not used
  196.   return = not used }
  197.  
  198.   CDM_SETDEFEXT = CDM_FIRST + 6;
  199.  
  200. type
  201.   PChooseColorA = ^TChooseColorA;
  202.   PChooseColorW = ^TChooseColorW;
  203.   PChooseColor = PChooseColorA;
  204.   tagCHOOSECOLORA = packed record
  205.     lStructSize: DWORD;
  206.     hWndOwner: HWND;
  207.     hInstance: HWND;
  208.     rgbResult: COLORREF;
  209.     lpCustColors: ^COLORREF;
  210.     Flags: DWORD;
  211.     lCustData: LPARAM;
  212.     lpfnHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  213.     lpTemplateName: PAnsiChar;
  214.   end;
  215.   {$nonamespace tagCHOOSECOLORA}
  216.   TChooseColorA = tagCHOOSECOLORA;
  217.   tagCHOOSECOLORW = packed record
  218.     lStructSize: DWORD;
  219.     hWndOwner: HWND;
  220.     hInstance: HWND;
  221.     rgbResult: COLORREF;
  222.     lpCustColors: ^COLORREF;
  223.     Flags: DWORD;
  224.     lCustData: LPARAM;
  225.     lpfnHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  226.     lpTemplateName: PWideChar;
  227.   end;
  228.   {$nonamespace tagCHOOSECOLORW}
  229.   TChooseColorW = tagCHOOSECOLORW;
  230.   TChooseColor = TChooseColorA;
  231.  
  232. function ChooseColorA(var CC: TChooseColorA): Bool; stdcall;
  233. function ChooseColorW(var CC: TChooseColorW): Bool; stdcall;
  234. function ChooseColor(var CC: TChooseColor): Bool; stdcall;
  235.  
  236. const
  237.   CC_RGBINIT = $00000001;
  238.   CC_FULLOPEN = $00000002;
  239.   CC_PREVENTFULLOPEN = $00000004;
  240.   CC_SHOWHELP = $00000008;
  241.   CC_ENABLEHOOK = $00000010;
  242.   CC_ENABLETEMPLATE = $00000020;
  243.   CC_ENABLETEMPLATEHANDLE = $00000040;
  244.   CC_SOLIDCOLOR = $00000080;
  245.   CC_ANYCOLOR = $00000100;
  246.  
  247. type
  248.   PFindReplaceA = ^TFindReplaceA;
  249.   PFindReplaceW = ^TFindReplaceW;
  250.   PFindReplace = PFindReplaceA;
  251.   tagFINDREPLACEA = packed record
  252.     lStructSize: DWORD;        { size of this struct $20 }
  253.     hWndOwner: HWND;             { handle to owner's window }
  254.     hInstance: HINST;        { instance handle of.EXE that
  255.                                    contains cust. dlg. template }
  256.     Flags: D